Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

247
Views
Hilo de rubí. ¿Por qué "#Únete"?

Esto puede parecer una pregunta tonta. pero por favor guíame.

https://apidock.com/ruby/Thread/join

 a = Thread.new { print "a"; } a.join(5)

Como vemos aquí, el método #join es básicamente, "Oye OS, ejecuta este bloque de código (subproceso), dentro de 5 segundos".

pero ¿de dónde viene este nombre? join ¿Por qué no simplemente run ?
en Java, parece un significado ligeramente diferente.

EDITAR

Descubrí que en realidad #join está bloqueando la llamada. Significa que comprueba 5 segundos después, si el hilo se ha terminado o no. Si finished , mata el hilo. (X) . join devolverá el objeto Thread. que ya está Muerto.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

No exactamente. join es el nombre tradicional de la operación que espera a que se complete un subproceso. La ejecución se "divide" cuando inicia un hilo y se "une" cuando un padre se da cuenta de la finalización de un hilo.

a.join(5) no dice "ejecutar este hilo dentro de 5 segundos", dice "esperar hasta 5 segundos para que termine este hilo". Comienza a ejecutarse tan pronto como lo crea.

over 4 years ago · Santiago Trujillo Report

0

Thread.new inicia el hilo. Puedes hacer una prueba sencilla:

 Thread.new { puts "started" }; sleep 1 puts "done"

La impresión started de inmediato, luego esperará un segundo y luego done imprimirá.

O ejecute Thread.new en irb y vea cómo se ejecuta inmediatamente.

Necesita a.join porque sin él, el programa principal podría salir y eliminar los subprocesos antes de que se complete el subproceso. Por ejemplo...

 Thread.new do puts "start" # Simulate the thread doing some work sleep 1 puts "end" end sleep 0.5

Esto imprimirá el start y eso es todo. El programa principal terminará y matará el hilo. El proceso principal debe esperar hasta que el subproceso se complete conjoin .

Se llama "unirse" porque está uniendo el hilo nuevamente con el hilo principal que lo generó.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!